home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Wonky Flux Batch 2019 02
/
Wonky_Flux_Batch_2019-02.zip
/
Wonky Flux Batch 2019-02
/
106 - Proboard KEY Floppy - Must be in Drive 1.dsk
/
TIMEGRAPHER425C
/
TG425C
/
TIMEGRAPHER.S
< prev
Wrap
Text File
|
2000-01-01
|
19KB
|
449 lines
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; TimeGrapher.S version 4.25c jpe
; Published by A.1 Computing (TM)
; (C) Sept. 89 by John P. Edwards
; -------------------------------
; Please Do Not Pirate this!
; For Sale to Sysops: Send $5 to:
; -------------------------------
; A.1 Computing~s ProBOARD
; PO BOX 3301
; Paso Robles, CA 93447
; =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
; Update # 2145 January 30th, 1990 @ 13:10 (ACOS 1.3j Patched)
; Requires 80 Columns, ProScrn is supported but not required.
; Thank You For Buying TimeGrapher! jpe (Be Sure Everything is On The Drive
; Spec Used in Your Previous link And Run.) if ya see the business potential
; inherent in this type of thing like I do, call me!
; Many Thanks To Greg Ring for all his Help and Ideas!
; To PsuedoCode and Steve Prado, John Thyne and BlueKnight.
; Joe Siegler and Arsenal of Freedom, Steve Leichter and Apple Elite II
free:kill'null':kill'var':store'var':clear
on nocar goto Gbye
Mnu.j
close:f$='graph.data':open#1,f$:fs=size(1):q=mark(1)
f1$='stash.data':open#2,f1$:jd=mark(2):close
if (jd or fs>8) gosub start
if jd and q goto mnu.1:else l=l+1
if l=1 gosub weekly
Mnu.1
x=(clock(2)-clock(1))/60:y=clock(2):x$=right$('0'+str$(x),3)
if clock(1)>clock(2) x$='!!!'
if x=0 x$='---'
if not y x$='***'
if info(5) x$=':::'
print\'['x$'][ Minutes Remaining ][ TimeGrapher Deluxe 4.25 Main ] ';
print'('chr$(15)'?=Help'chr$(14)'):';
pop:push mnu.j:gosub getkey
Blah
if i$='Q'or i$='A'goto Linx
if i$='T'goto Link
if i$='U'goto Start
if i$='D'goto Daily
if i$='Y'goto Yearly
if i$='W'goto Weekly
if i$='B'goto Baud
if i$='M'goto Misc
if i$='V'goto View
if i$='*'and info(5)goto options
Mnu
f$='TimeGraph.Help'
Mnu.2
open#1,f$:input#1,x$:setint(' '):forl=1tolen(x$)
addint(mid$(x$,l,1)):next:printchr$(12)\
copy#1:if key(3)goto mnu.3
a=key(0):close:setint(''):pop:goto mnu.1
Mnu.3
close:setint(''):a=key(0)
if(a>96)and(a<123)a=a-32
if a=32 pop:goto mnu.1
print:i$=chr$(a):goto blah
Link
print\'Logoff The System? (y/N):';:gosub getkey
if i$<>'Y'return
pop:clear:recall'var':kill'var':link'a:main.seg','termin2'
Linx
pop:clear:recall'var':kill'var':link'a:main.seg','fromsys'
Gbye
pop:clear:recall'var':kill'var':link'a:main.seg','term1'
; ------------------------------------
; End Main Body, SubRoutines Follow...
; ------------------------------------
Start
if q and jd print\'TimeGraphs Initialized...'\:return
gosub header
close:f2$='null':killf2$:createf2$:open#1,f2$
input#1,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa,ab
input#1,ac,ad,ae,af,b0,b1,b2,b3,b4,b5,b6,b7
input#1,m1,m2,m3,m4,m5,m6,m7,m8,m9,mz,mb,mc
input#1,y1,y2,y3,y4,y5,y6,z1,z2,z$
input#1,z3,zz,d1,d2,d3,d4,d5,d6,d7
input#1,x,x,mx$:close#1:killf2$
Reader
if q print\'It Was Just Updated!'\:return
if fs<4 print\'Insufficient Data, File is now 'fs'/4 Size..'\:return
if not(jd)print\'Updating Archives!':gosub report
if jd print\'Welcome To TimeGrapher...'
open#1,f$:print\'Reading Datum Record [ ';
s=-2:forj=1to200
if eof(1)k=j-1:j=200:next:print\\k' Data Points Added To Base':goto compute
s$=str$(j):printchr$(8,s+2);j' ]';
s=len(s$):input#1,x,y,z,zx,dj$
if x=0 a0=a0+1
if x=1 a1=a1+1
if x=2 a2=a2+1
if x=3 a3=a3+1
if x=4 a4=a4+1
if x=5 a5=a5+1
if x=6 a6=a6+1
if x=7 a7=a7+1
if x=8 a8=a8+1
if x=9 a9=a9+1
if x=10 aa=aa+1
if x=11 ab=ab+1
if x=12 ac=ac+1
if x=13 ad=ad+1
if x=14 ae=ae+1
if x=15 af=af+1
if x=16 b0=b0+1
if x=17 b1=b1+1
if x=18 b2=b2+1
if x=19 b3=b3+1
if x=20 b4=b4+1
if x=21 b5=b5+1
if x=22 b6=b6+1
if x=23 b7=b7+1
if y=1 y1=y1+1
if y=4 y2=y2+1
if y=8 y3=y3+1
if y=16 y4=y4+1
if y=32 y5=y5+1
if y=64 y6=y6+1
if zx=1 m1=m1+1
if zx=2 m2=m2+1
if zx=3 m3=m3+1
if zx=4 m4=m4+1
if zx=5 m5=m5+1
if zx=6 m6=m6+1
if zx=7 m7=m7+1
if zx=8 m8=m8+1
if zx=9 m9=m9+1
if zx=10 mz=mz+1
if zx=11 mb=mb+1
if zx=12 mc=mc+1
if dj$='Mon' d1=d1+1
if dj$='Tue' d2=d2+1
if dj$='Wed' d3=d3+1
if dj$='Thu' d4=d4+1
if dj$='Fri' d5=d5+1
if dj$='Sat' d6=d6+1
if dj$='Sun' d7=d7+1
z1=z1+z:next:k=200
Compute
close:print\'Stashing Data...';:p=100:d=10
a0=(a0*p)/k*d:a1=(a1*p)/k*d:a2=(a2*p)/k*d:a3=(a3*p)/k*d
a4=(a4*p)/k*d:a5=(a5*p)/k*d:a6=(a6*p)/k*d:a7=(a7*p)/k*d
a8=(a8*p)/k*d:a9=(a9*p)/k*d:aa=(aa*p)/k*d:ab=(ab*p)/k*d
ac=(ac*p)/k*d:ad=(ad*p)/k*d:ae=(ae*p)/k*d:af=(af*p)/k*d
b0=(b0*p)/k*d:b1=(b1*p)/k*d:b2=(b2*p)/k*d:b3=(b3*p)/k*d
b4=(b4*p)/k*d:b5=(b5*p)/k*d:b6=(b6*p)/k*d:b7=(b7*p)/k*d
y1=(y1*p)/k*d:y2=(y2*p)/k*d:y3=(y3*p)/k*d:y4=(y4*p)/k*d
y5=(y5*p)/k*d:y6=(y6*p)/k*d:d1=(d1*p)/k*d:d2=(d2*p)/k*d
d3=(d3*p)/k*d:d4=(d4*p)/k*d:d5=(d5*p)/k*d
d6=(d6*p)/k*d:d7=(d7*p)/k*d:r=sw:z2=z1:z1=z1/k
z3=val(left$(date$,2)):print'..One Moment.'
Combine
if jd goto new
print\'Combining, This may Take a Second...';
open#1,f1$
input#1,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,wa,wb
input#1,wc,wd,we,wf,x0,x1,x2,x3,x4,x5,x6,x7
input#1,n1,n2,n3,n4,n5,n6,n7,n8,n9,oa,ob,oc
input#1,ya,yb,yc,yd,ye,yf,za,zb
input#1,zc,z4,da,db,dc,dd,de,df,dg,cd,co
input#1,nn,nz,mx$:close#1:print'Please Hold...':if w0=0 goto new
a0=(a0+w0)/2:a1=(a1+w1)/2:a2=(a2+w2)/2:a3=(a3+w3)/2:a4=(a4+w4)/2
a5=(a5+w5)/2:a6=(a6+w6)/2:a7=(a7+w7)/2:a8=(a8+w8)/2:a9=(a9+w9)/2
aa=(aa+wa)/2:ab=(ab+wb)/2:ac=(ac+wc)/2:ad=(ad+wd)/2:ae=(ae+we)/2
af=(af+wf)/2:b0=(b0+x0)/2:b1=(b1+x1)/2:b2=(b2+x2)/2:b3=(b3+x3)/2
b4=(b4+x4)/2:b5=(b5+x5)/2:b6=(b6+x6)/2:b7=(b7+x7)/2:y1=(y1+ya)/2
y2=(y2+yb)/2:y3=(y3+yc)/2:y4=(y4+yd)/2:y5=(y5+ye)/2:y6=(y6+yf)/2
d1=(d1+da)/2:d2=(d2+db)/2:d3=(d3+dc)/2:d4=(d4+dd)/2:d5=(d5+de)/2
d6=(d6+df)/2:d7=(d7+dg)/2:z1=(z1+za)/2
if z3=zc then print\'It~s still 'mx$'!'\:goto cool
New
print\'A Brand New Month...';
if z3=1 mx$=m1$:n1=0
if z3=2 mx$=m2$:n2=0
if z3=3 mx$=m3$:n3=0
if z3=4 mx$=m4$:n4=0
if z3=5 mx$=m5$:n5=0
if z3=6 mx$=m6$:n6=0
if z3=7 mx$=m7$:n7=0
if z3=8 mx$=m8$:n8=0
if z3=9 mx$=m9$:n9=0
if z3=10 mx$=mz$:oa=0
if z3=11 mx$=mb$:ob=0
if z3=12 mx$=mc$:oc=0
printmx$\
Cool
if z2>60 z2=z2-60:zz=zz+1:goto cool
if z2>=30 zz=zz+1
z2=zz+zb:cd=cd+k
m1=m1+n1:m2=m2+n2:m3=m3+n3:m4=m4+n4:m5=m5+n5:m6=m6+n6
m7=m7+n7:m8=m8+n8:m9=m9+n9:mz=mz+oa:mb=mb+ob:mc=mc+oc
nn=m1+m2+m3+m4+m5+m6+m7+m8+m9+mz+mb+mc
Dude
if z2>10000 z2=z2-10000:z4=z4+1:goto dude
if cd>10000 cd=cd-10000:co=co+1:goto dude
if nn>10000 nn=nn-10000:nz=nz+1:goto dude
Stash
killf1$:createf1$:open#1,f1$
print#1,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,aa,ab
print#1,ac,ad,ae,af,b0,b1,b2,b3,b4,b5,b6,b7
print#1,m1,m2,m3,m4,m5,m6,m7,m8,m9,mz,mb,mc
print#1,y1,y2,y3,y4,y5,y6,z1,z2,date$
print#1,z3,z4,d1,d2,d3,d4,d5,d6,d7,cd,co
print#1,nn,nz,mx$:close#1:killf$:jp$=date$:return
Header
pt=0:setint(chr$(29)):printchr$(5);chr$(1,info(2)*15);
pt=(key(0)=29):setint(''):if info(0)=0 pt=1
if u pt=0
print'Working...';:if not(u)printchr$(8,10)chr$(12):else print
print#u,\'-=:*:=- -=:*:=- -=:*:=- -=:*:=- -=:*:=- -=:*:=-';
print#u,' -=:*:=- -=:*:=- -=:*:=- -=:*:=-'
print#u,' ' ;:if pt printchr$(15);
print#u,' TimeGrapher Deluxe Version 4.25c';
print#u,' by John P. Edwards (C) September, 1989 '
if pt printchr$(14);
print#u,'-=:*:=- -=:*:=- -=:*:=- -=:*:=- -=:*:=- -=:*:=-';
print#u,' -=:*:=- -=:*:=- -=:*:=- -=:*:=-'
print#u,chr$(95,79)
m1$='January__':m2$='February_':m3$='March____':m4$='April____'
m5$='May______':m6$='June_____':m7$='July_____':m8$='August___'
m9$='September':mz$='October__':mb$='November_':mc$='December '
open#1,f1$
input#1,w0,w1,w2,w3,w4,w5,w6,w7,w8,w9,wa,wb
input#1,wc,wd,we,wf,x0,x1,x2,x3,x4,x5,x6,x7
input#1,n1,n2,n3,n4,n5,n6,n7,n8,n9,oa,ob,oc
input#1,ya,yb,yc,yd,ye,yf,za,zb,jp$
input#1,z3,z4,da,db,dc,dd,de,df,dg,cd,co
input#1,nn,nz,mx$:close#1:if jp$='' jp$=date$
return
Daily
if u=2 h=1:gosub disk
gosub header:print#u,'| Hour|'chr$(95,17)'AM'chr$(95,34);
print#u,'PM'chr$(95,17)
print#u,'| was |12| 1| 2| 3| 4| 5| 6| 7| 8| 9|10|11|12| 1| 2| 3| 4| 5|';
print#u,' 6| 7| 8| 9|10|11|':print#u,chr$(61,79)
print#u,'Prcnt: '(w0+5)/10'% '(w1+5)/10'% '(w2+5)/10'% '(w3+5)/10'% ';
print#u,(w4+5)/10'% '(w5+5)/10'% '(w6+5)/10'% '(w7+5)/10'% '(w8+5)/10'% ';
print#u,(w9+5)/10'% '(wa+5)/10'% '(wb+5)/10'% '(wc+5)/10'% '(wd+5)/10'% ';
print#u,(we+5)/10'% '(wf+5)/10'% '(x0+5)/10'% '(x1+5)/10'% '(x2+5)/10'% ';
print#u,(x3+5)/10'% '(x4+5)/10'% '(x5+5)/10'% '(x6+5)/10'% '(x7+5)/10'%'
print#u,chr$(45,79):k$='**|':j$=' |'
if pt k$=chr$(16)+'WV'+chr$(14)+'|'
fory=5to60 step5:x=65-y:print#u,'|'x/10;
if right$(str$(x),1)<>'0' print#u,'.5% |';:else print#u,'.0% |';
if w0>=x print#u,k$;:else print#u,j$;
if w1>=x print#u,k$;:else print#u,j$;
if w2>=x print#u,k$;:else print#u,j$;
if w3>=x print#u,k$;:else print#u,j$;
if w4>=x print#u,k$;:else print#u,j$;
if w5>=x print#u,k$;:else print#u,j$;
if w6>=x print#u,k$;:else print#u,j$;
if w7>=x print#u,k$;:else print#u,j$;
if w8>=x print#u,k$;:else print#u,j$;
if w9>=x print#u,k$;:else print#u,j$;
if wa>=x print#u,k$;:else print#u,j$;
if wb>=x print#u,k$;:else print#u,j$;
if wc>=x print#u,k$;:else print#u,j$;
if wd>=x print#u,k$;:else print#u,j$;
if we>=x print#u,k$;:else print#u,j$;
if wf>=x print#u,k$;:else print#u,j$;
if x0>=x print#u,k$;:else print#u,j$;
if x1>=x print#u,k$;:else print#u,j$;
if x2>=x print#u,k$;:else print#u,j$;
if x3>=x print#u,k$;:else print#u,j$;
if x4>=x print#u,k$;:else print#u,j$;
if x5>=x print#u,k$;:else print#u,j$;
if x6>=x print#u,k$;:else print#u,j$;
if x7>=x print#u,k$:else print#u,j$
next:print#u,chr$(61,79):return
Yearly
if u=2 h=2:gosub disk
gosub header
print#u,'| Month | 100|200|300|400|500|600|700|800|900|';
print#u,' 1100| 1300| 1550|'
print#u,chr$(61,79):k$='*':j$=' ':b=1550:c=25:d=1300
if pt k$=chr$(16)+'^'+chr$(14)
print#u,'|__'m1$'__|';:forx=c to b step c
if n1>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n1' calls':x=b
next:print#u,'|__'m2$'__|';:forx=c to b step c
if n2>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n2' calls':x=b
next:print#u,'|__'m3$'__|';:forx=c to b step c
if n3>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n3' calls':x=b
next:print#u,'|__'m4$'__|';:forx=c to b step c
if n4>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n4' calls':x=b
next:print#u,'|__'m5$'__|';:forx=c to b step c
if n5>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n5' calls':x=b
next:print#u,'|__'m6$'__|';:forx=c to b step c
if n6>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n6' calls':x=b
next:print#u,'|__'m7$'__|';:forx=c to b step c
if n7>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n7' calls':x=b
next:print#u,'|__'m8$'__|';:forx=c to b step c
if n8>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n8' calls':x=b
next:print#u,'|__'m9$'__|';:forx=c to b step c
if n9>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,n9' calls':x=b
next:print#u,'|__'mz$'__|';:forx=c to b step c
if oa>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,oa' calls':x=b
next:print#u,'|__'mb$'__|';:forx=c to b step c
if ob>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,ob' calls':x=b
next:print#u,'|__'mc$'__|';:forx=c to b step c
if oc>=x print#u,k$;:else print#u,j$;:if x<=d:print#u,oc' calls':x=b
next:print#u,chr$(61,79)
if z3=1 mn=n1
if z3=2 mn=n2
if z3=3 mn=n3
if z3=4 mn=n4
if z3=5 mn=n5
if z3=6 mn=n6
if z3=7 mn=n7
if z3=8 mn=n8
if z3=9 mn=n9
if z3=10 mn=oa
if z3=11 mn=ob
if z3=12 mn=oc
mn$=right$(' '+str$(nn),6):if nz mn$=str$(nz)+mn$
print#u,'[ Total calls for 'mx$': 'mn' ][ Total Past 12 Months: 'mn$' ]'
return
Weekly
if u=2 h=3:gosub disk
gosub header
print#u,' Percent: 'da/10'% 'db/10'% 'dc/10'% ';
print#u,dd/10'% 'de/10'% 'df/10'% 'dg/10'%'
print#u,chr$(61,79)
print#u,'||Calls| Mon. | Tues. | Wed. | Thur. | Fri. |';
print#u,' Sat. | Sun. ||'
print#u,chr$(45,79):k$=' *-*-* |':j$=' |'
if pt k$=' '+chr$(16)+'WVWVW'+chr$(14)+' |'
fory=20to200 step20:x=220-y:print#u,'|| ';
if x<100 print#u,' ';
print#u,x/10 ;:print#u,'% |';
if da>=x print#u,k$;:else print#u,j$;
if db>=x print#u,k$;:else print#u,j$;
if dc>=x print#u,k$;:else print#u,j$;
if dd>=x print#u,k$;:else print#u,j$;
if de>=x print#u,k$;:else print#u,j$;
if df>=x print#u,k$;:else print#u,j$;
if dg>=x print#u,k$;:else print#u,j$;
print#u,'|':next:print#u,chr$(61,79)
z2$=right$('0000'+str$(zb),4):if z4 z2$=str$(z4)+z2$
print#u,'[ Total Hours Graphed To Date: 'z2$;
print#u,' ][ Average Call is: 'za' mins. ]'
return
Baud
if u=2 h=4:gosub disk
gosub header:print#u,'||Percent |__________________________'jp$;
print#u,'________________________________||'
print#u,'||of Calls| 300 | 1200 | 2400 | 4800 |';
print#u,' 9600 | 19.2k | **** ||'
print#u,chr$(61,79):k$=' ***** |':j$=' |'
if pt k$=' '+chr$(16)+'WVWVW'+chr$(14)+' |'
fory=50to600 step50:x=650-y:print#u,'|| ';
if x<100 print#u,' ';
print#u,x/10 ;:print#u,'% |';
if ya>=x print#u,k$;:else print#u,j$;
if yb>=x print#u,k$;:else print#u,j$;
if yc>=x print#u,k$;:else print#u,j$;
if yd>=x print#u,k$;:else print#u,j$;
if ye>=x print#u,k$;:else print#u,j$;
if yf>=x print#u,k$;:else print#u,j$;
print#u,' ||':next:print#u,chr$(61,79)
cd$=right$(' '+str$(cd),4):if co cd$=str$(co)+cd$
print#u,'[ Graphs Updated: 'jp$' ][ Percentage Based On 'cd$;
print#u,' Data Points ]'
return
View
s=0:print'
View Previous: [D]aily W)eekly Y)early B)aud Q)uit'
print'
Select Letter: ';
gosub getkey:if i$='A' or i$='Q' print\'Quit Back....'\:pop:goto mnu.1
if i$='B'print\'Baud....':s=4
if i$='W'print\'Weekly..':s=3
if i$='Y'print\'Yearly..':s=2
if s = 0 print\'Daily...':s=1
print\:setint(1):copy'Report.'+str$(s):setint(''):goto view
Misc
gosub header:me$='TimeGraph.Ed':copy me$:pop:goto mnu.1
Options
u=0:h=0:print'
P)rinter D)isk File [S]creen'\
print'
Select Option: ';:gosub getkey
if i$<>'D' and i$<>'P' print\'Screen Active...'\
if i$='P' print\'Printer On...'\:u=5
if i$='D' print\'Disk File Active...'\:u=2
return
Report
u=2:gosub daily:gosub yearly:gosub weekly:gosub baud
u=0:h=0:print\'Previous Reports Archived.':return
Disk
close:print\'Creating Disk File 'h:kill'report.'+str$(h)
create'report.'+str$(h):open#u,'report.'+str$(h):return
Getkey
i$='':if flag(7)=0 input@2''i$:return
zy=0
Get2
if (clock(2)<>0) and (clock(1)>clock(2))goto getgone
zx=peek(-16384)
if (zx=129) or (zx=150) get i$:printchr$(8);:return
zx=key(0):if (zx>96) and (zx<123) zx=zx-32
if zx<>0 i$=chr$(zx):printi$:return
zy=zy+1
if zy=1500:printchr$(7);:goto get2
if zy=3000:print'Timeout...':pop:modem(1):goto Gbye
goto get2
GetGone
print\'Time Limit Exceeded':pop:modem(1):goto Gbye
; EOF